<html>
<head><meta charset="utf-8"><title>Testing another alternative to FxHash · t-compiler/performance · Zulip Chat Archive</title></head>
<h2>Stream: <a href="https://rust-lang.github.io/zulip_archive/stream/247081-t-compiler/performance/index.html">t-compiler/performance</a></h2>
<h3>Topic: <a href="https://rust-lang.github.io/zulip_archive/stream/247081-t-compiler/performance/topic/Testing.20another.20alternative.20to.20FxHash.html">Testing another alternative to FxHash</a></h3>

<hr>

<base href="https://rust-lang.zulipchat.com">

<head><link href="https://rust-lang.github.io/zulip_archive/style.css" rel="stylesheet"></head>

<a name="207296226"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/247081-t-compiler/performance/topic/Testing%20another%20alternative%20to%20FxHash/near/207296226" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jannis Harder <a href="https://rust-lang.github.io/zulip_archive/stream/247081-t-compiler/performance/topic/Testing.20another.20alternative.20to.20FxHash.html#207296226">(Aug 18 2020 at 18:26)</a>:</h4>
<p>Hi everyone, I've written an alternative to FxHash that avoids FxHash's poor distribution of lower hash bits, but is essentially as fast to compute.</p>
<p>In my microbenchmarks it either matches FxHash's performance or beats it, sometimes by a lot. I also ran the rustc-perf benchmarks locally, once as is using FxHash and once replacing it with ZwoHash (not 100% sure I did everything right when benchmarking, I couldn't get the web interface to run locally so I manually dumped the sqlite database) and there I found no difference beyond a bit of noise going either way.</p>
<p>Still I figured that might be a useful datapoint for people working on rustc's performance. My conclusion would be that a) either rustc doesn't hit the cases where FxHash's output causes collisions or b) the resulting slowdown when searching entries in a hash table is small enough to not register.</p>
<p>This is the crate for my hash <a href="https://crates.io/crates/zwohash">https://crates.io/crates/zwohash</a> and <a href="https://github.com/jix/zwohash/blob/master/src/lib.rs">https://github.com/jix/zwohash/blob/master/src/lib.rs</a> contains comments explaining the difference to FxHash.</p>



<a name="207302991"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/247081-t-compiler/performance/topic/Testing%20another%20alternative%20to%20FxHash/near/207302991" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> cuviper <a href="https://rust-lang.github.io/zulip_archive/stream/247081-t-compiler/performance/topic/Testing.20another.20alternative.20to.20FxHash.html#207302991">(Aug 18 2020 at 19:16)</a>:</h4>
<p>poor distribution in the low bits is bad for the initial search bucket, but hashbrown also does SIMD comparisons on the high 7 bits, so that may be enough to still avoid full comparisons from those low collisions.</p>



<a name="207303291"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/247081-t-compiler/performance/topic/Testing%20another%20alternative%20to%20FxHash/near/207303291" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/247081-t-compiler/performance/topic/Testing.20another.20alternative.20to.20FxHash.html#207303291">(Aug 18 2020 at 19:19)</a>:</h4>
<p>I have long wanted to get hashbrown to dump collision statistics</p>



<a name="207303937"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/247081-t-compiler/performance/topic/Testing%20another%20alternative%20to%20FxHash/near/207303937" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> cuviper <a href="https://rust-lang.github.io/zulip_archive/stream/247081-t-compiler/performance/topic/Testing.20another.20alternative.20to.20FxHash.html#207303937">(Aug 18 2020 at 19:25)</a>:</h4>
<p>wow:</p>
<div class="codehilite"><pre><span></span><code>building int sets/u64 bits 16..32/ZwoHash
                        time:   [61.265 us 61.346 us 61.438 us]
building int sets/u64 bits 16..32/FxHash
                        time:   [1.8995 ms 1.9007 ms 1.9022 ms]
</code></pre></div>



<a name="207304567"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/247081-t-compiler/performance/topic/Testing%20another%20alternative%20to%20FxHash/near/207304567" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/247081-t-compiler/performance/topic/Testing.20another.20alternative.20to.20FxHash.html#207304567">(Aug 18 2020 at 19:31)</a>:</h4>
<p>Maybe worth swapping them out and running main test suite? It's not impossible that e.g. cycles are lower even if instructions are neutral</p>



<a name="207307311"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/247081-t-compiler/performance/topic/Testing%20another%20alternative%20to%20FxHash/near/207307311" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> cuviper <a href="https://rust-lang.github.io/zulip_archive/stream/247081-t-compiler/performance/topic/Testing.20another.20alternative.20to.20FxHash.html#207307311">(Aug 18 2020 at 19:52)</a>:</h4>
<p><span class="user-mention" data-user-id="116122">@simulacrum</span> you mean like a draft PR for a perf run?</p>



<a name="207307325"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/247081-t-compiler/performance/topic/Testing%20another%20alternative%20to%20FxHash/near/207307325" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/247081-t-compiler/performance/topic/Testing.20another.20alternative.20to.20FxHash.html#207307325">(Aug 18 2020 at 19:52)</a>:</h4>
<p>yeah</p>



<a name="207307348"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/247081-t-compiler/performance/topic/Testing%20another%20alternative%20to%20FxHash/near/207307348" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> cuviper <a href="https://rust-lang.github.io/zulip_archive/stream/247081-t-compiler/performance/topic/Testing.20another.20alternative.20to.20FxHash.html#207307348">(Aug 18 2020 at 19:52)</a>:</h4>
<p>I can do that</p>



<a name="207307371"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/247081-t-compiler/performance/topic/Testing%20another%20alternative%20to%20FxHash/near/207307371" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/247081-t-compiler/performance/topic/Testing.20another.20alternative.20to.20FxHash.html#207307371">(Aug 18 2020 at 19:53)</a>:</h4>
<p>Thanks!</p>



<a name="207307828"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/247081-t-compiler/performance/topic/Testing%20another%20alternative%20to%20FxHash/near/207307828" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jannis Harder <a href="https://rust-lang.github.io/zulip_archive/stream/247081-t-compiler/performance/topic/Testing.20another.20alternative.20to.20FxHash.html#207307828">(Aug 18 2020 at 19:56)</a>:</h4>
<p><span class="user-mention silent" data-user-id="138448">cuviper</span> <a href="#narrow/stream/247081-t-compiler.2Fperformance/topic/Testing.20another.20alternative.20to.20FxHash/near/207307311">said</a>:</p>
<blockquote>
<p><span class="user-mention silent" data-user-id="116122">simulacrum</span> you mean like a draft PR for a perf run?</p>
</blockquote>
<p>I used this for a local perf run, but I haven't worked on rustc before, so I didn't really know what I was doing: <a href="https://github.com/jix/rust/commit/3f627f19300c955b96f10bc72a89919409dba354">https://github.com/jix/rust/commit/3f627f19300c955b96f10bc72a89919409dba354</a></p>



<a name="207308151"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/247081-t-compiler/performance/topic/Testing%20another%20alternative%20to%20FxHash/near/207308151" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> cuviper <a href="https://rust-lang.github.io/zulip_archive/stream/247081-t-compiler/performance/topic/Testing.20another.20alternative.20to.20FxHash.html#207308151">(Aug 18 2020 at 19:58)</a>:</h4>
<p><span class="user-mention" data-user-id="137027">@Jannis Harder</span> ok sure -- you probably need to add to <code>src/tools/tidy/src/deps.rs</code> <code>PERMITTED_DEPENDENCIES</code> too, so tidy passes it, but then would you like to open a PR? I can queue up the perf run for you.</p>



<a name="207308481"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/247081-t-compiler/performance/topic/Testing%20another%20alternative%20to%20FxHash/near/207308481" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jannis Harder <a href="https://rust-lang.github.io/zulip_archive/stream/247081-t-compiler/performance/topic/Testing.20another.20alternative.20to.20FxHash.html#207308481">(Aug 18 2020 at 20:01)</a>:</h4>
<p>I can do that if the changes look OK otherwise. I've seen some things depend indirectly on rustc_hash like the ra_* stuff and salsa, but AFAICT that's all not used by default in rustc... I guess an alternative would be to replace the rustc_hash crate workspace wide.</p>



<a name="207308576"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/247081-t-compiler/performance/topic/Testing%20another%20alternative%20to%20FxHash/near/207308576" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jannis Harder <a href="https://rust-lang.github.io/zulip_archive/stream/247081-t-compiler/performance/topic/Testing.20another.20alternative.20to.20FxHash.html#207308576">(Aug 18 2020 at 20:01)</a>:</h4>
<p>Also, is there some canonical way to indicate that a PR is just for a pref run?</p>



<a name="207308645"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/247081-t-compiler/performance/topic/Testing%20another%20alternative%20to%20FxHash/near/207308645" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> cuviper <a href="https://rust-lang.github.io/zulip_archive/stream/247081-t-compiler/performance/topic/Testing.20another.20alternative.20to.20FxHash.html#207308645">(Aug 18 2020 at 20:02)</a>:</h4>
<p>yeah, <code>rustc_data_structures</code> won't cover everything, but it will get a lot</p>



<a name="207308698"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/247081-t-compiler/performance/topic/Testing%20another%20alternative%20to%20FxHash/near/207308698" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> cuviper <a href="https://rust-lang.github.io/zulip_archive/stream/247081-t-compiler/performance/topic/Testing.20another.20alternative.20to.20FxHash.html#207308698">(Aug 18 2020 at 20:02)</a>:</h4>
<p>set GitHub to a draft when you open the PR, and then just state your intent in the description.</p>



<a name="207308763"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/247081-t-compiler/performance/topic/Testing%20another%20alternative%20to%20FxHash/near/207308763" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/247081-t-compiler/performance/topic/Testing.20another.20alternative.20to.20FxHash.html#207308763">(Aug 18 2020 at 20:03)</a>:</h4>
<p><span class="user-mention" data-user-id="138448">@cuviper</span> tidy shouldn't run on the try builder so likely fine to skip that</p>



<a name="207308772"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/247081-t-compiler/performance/topic/Testing%20another%20alternative%20to%20FxHash/near/207308772" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> cuviper <a href="https://rust-lang.github.io/zulip_archive/stream/247081-t-compiler/performance/topic/Testing.20another.20alternative.20to.20FxHash.html#207308772">(Aug 18 2020 at 20:03)</a>:</h4>
<p>ok</p>



<a name="207310387"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/247081-t-compiler/performance/topic/Testing%20another%20alternative%20to%20FxHash/near/207310387" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jannis Harder <a href="https://rust-lang.github.io/zulip_archive/stream/247081-t-compiler/performance/topic/Testing.20another.20alternative.20to.20FxHash.html#207310387">(Aug 18 2020 at 20:16)</a>:</h4>
<p><a href="https://github.com/rust-lang/rust/pull/75679">https://github.com/rust-lang/rust/pull/75679</a></p>



<a name="207312064"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/247081-t-compiler/performance/topic/Testing%20another%20alternative%20to%20FxHash/near/207312064" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jannis Harder <a href="https://rust-lang.github.io/zulip_archive/stream/247081-t-compiler/performance/topic/Testing.20another.20alternative.20to.20FxHash.html#207312064">(Aug 18 2020 at 20:29)</a>:</h4>
<p>whoops, I forgot to run ./x.py fmt</p>



<a name="207312307"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/247081-t-compiler/performance/topic/Testing%20another%20alternative%20to%20FxHash/near/207312307" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/247081-t-compiler/performance/topic/Testing.20another.20alternative.20to.20FxHash.html#207312307">(Aug 18 2020 at 20:31)</a>:</h4>
<p>won't matter for try build</p>



<a name="207312374"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/247081-t-compiler/performance/topic/Testing%20another%20alternative%20to%20FxHash/near/207312374" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/247081-t-compiler/performance/topic/Testing.20another.20alternative.20to.20FxHash.html#207312374">(Aug 18 2020 at 20:31)</a>:</h4>
<p>but if you push to the pr I think that kills bors, so we'll need to manually queue perf  build</p>



<a name="207312446"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/247081-t-compiler/performance/topic/Testing%20another%20alternative%20to%20FxHash/near/207312446" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jannis Harder <a href="https://rust-lang.github.io/zulip_archive/stream/247081-t-compiler/performance/topic/Testing.20another.20alternative.20to.20FxHash.html#207312446">(Aug 18 2020 at 20:32)</a>:</h4>
<p>I didn't push anything</p>



<a name="207312744"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/247081-t-compiler/performance/topic/Testing%20another%20alternative%20to%20FxHash/near/207312744" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jannis Harder <a href="https://rust-lang.github.io/zulip_archive/stream/247081-t-compiler/performance/topic/Testing.20another.20alternative.20to.20FxHash.html#207312744">(Aug 18 2020 at 20:34)</a>:</h4>
<p>From what I can see on github, it does look like it failed because of not passing tidy and that cancelled all the jobs in the workflow, but I might be looking at the wrong things of course...</p>



<a name="207313070"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/247081-t-compiler/performance/topic/Testing%20another%20alternative%20to%20FxHash/near/207313070" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jannis Harder <a href="https://rust-lang.github.io/zulip_archive/stream/247081-t-compiler/performance/topic/Testing.20another.20alternative.20to.20FxHash.html#207313070">(Aug 18 2020 at 20:37)</a>:</h4>
<p>Ah, never mind, there is another workflow running on a merge commit, so I guess I am looking at the wrong thing, I was just worried because I got an email for a failed PR run</p>



<a name="207313172"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/247081-t-compiler/performance/topic/Testing%20another%20alternative%20to%20FxHash/near/207313172" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> cuviper <a href="https://rust-lang.github.io/zulip_archive/stream/247081-t-compiler/performance/topic/Testing.20another.20alternative.20to.20FxHash.html#207313172">(Aug 18 2020 at 20:38)</a>:</h4>
<p>yeah, rust CI is kind of funny like that</p>



<a name="207313241"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/247081-t-compiler/performance/topic/Testing%20another%20alternative%20to%20FxHash/near/207313241" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> cuviper <a href="https://rust-lang.github.io/zulip_archive/stream/247081-t-compiler/performance/topic/Testing.20another.20alternative.20to.20FxHash.html#207313241">(Aug 18 2020 at 20:38)</a>:</h4>
<p>bors runs over here: <a href="https://github.com/rust-lang-ci/rust/actions">https://github.com/rust-lang-ci/rust/actions</a></p>



<a name="207377055"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/247081-t-compiler/performance/topic/Testing%20another%20alternative%20to%20FxHash/near/207377055" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jannis Harder <a href="https://rust-lang.github.io/zulip_archive/stream/247081-t-compiler/performance/topic/Testing.20another.20alternative.20to.20FxHash.html#207377055">(Aug 19 2020 at 07:17)</a>:</h4>
<p>I left a comment on the PR with my take on the perf run results: <a href="https://github.com/rust-lang/rust/pull/75679#issuecomment-675897456">https://github.com/rust-lang/rust/pull/75679#issuecomment-675897456</a></p>



<a name="207422985"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/247081-t-compiler/performance/topic/Testing%20another%20alternative%20to%20FxHash/near/207422985" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Amanieu <a href="https://rust-lang.github.io/zulip_archive/stream/247081-t-compiler/performance/topic/Testing.20another.20alternative.20to.20FxHash.html#207422985">(Aug 19 2020 at 15:30)</a>:</h4>
<p>We tried something similar with ahash in the past: <a href="https://github.com/rust-lang/rust/issues/59592">#59592</a> <a href="https://github.com/rust-lang/rust/issues/59598">#59598</a></p>



<a name="207423104"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/247081-t-compiler/performance/topic/Testing%20another%20alternative%20to%20FxHash/near/207423104" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Amanieu <a href="https://rust-lang.github.io/zulip_archive/stream/247081-t-compiler/performance/topic/Testing.20another.20alternative.20to.20FxHash.html#207423104">(Aug 19 2020 at 15:31)</a>:</h4>
<p>Hmm no perf results there. I seem to remember trying that and getting regressions overall.</p>



<a name="207423153"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/247081-t-compiler/performance/topic/Testing%20another%20alternative%20to%20FxHash/near/207423153" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Amanieu <a href="https://rust-lang.github.io/zulip_archive/stream/247081-t-compiler/performance/topic/Testing.20another.20alternative.20to.20FxHash.html#207423153">(Aug 19 2020 at 15:31)</a>:</h4>
<p>It seems that rustc doesn't really care about collisions with identical low bits, so it can get away with a poor hash function like FxHash.</p>



<a name="207424643"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/247081-t-compiler/performance/topic/Testing%20another%20alternative%20to%20FxHash/near/207424643" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jannis Harder <a href="https://rust-lang.github.io/zulip_archive/stream/247081-t-compiler/performance/topic/Testing.20another.20alternative.20to.20FxHash.html#207424643">(Aug 19 2020 at 15:43)</a>:</h4>
<p>Yeah I looked at ahash before deciding to work on zwohash. ahash tries to provide much stronger guarantees with protecting against HashDoS, which comes with more overhead I think (maybe not for the AES instruction variant, but I'd want to use the portable ahash fallback anyway)</p>



<a name="207424815"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/247081-t-compiler/performance/topic/Testing%20another%20alternative%20to%20FxHash/near/207424815" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jannis Harder <a href="https://rust-lang.github.io/zulip_archive/stream/247081-t-compiler/performance/topic/Testing.20another.20alternative.20to.20FxHash.html#207424815">(Aug 19 2020 at 15:44)</a>:</h4>
<p>I haven't run my benchmarks against ahash though. I'm not a fan of it making it really difficult to get reproducible hashes, which for my use cases is even more important than performance</p>



<hr><p>Last updated: Aug 07 2021 at 22:04 UTC</p>
</html>